/*
 * @Author: MiNine
 * @Date: 2020-09-18 17:52:44
 * @LastEditors: MiNine
 * @LastEditTime: 2020-09-23 14:25:46
 * @Description: 
 */

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
const jwtAuth = require("./utils/jwt"); //拦截


require('./db');//连接数据库

var adminRouter = require('./routes/adminRouter');
var clientRouter = require('./routes/clientRouter');
var claimOrderRouter = require('./routes/claimOrderRouter');
var insureOrderRouter = require('./routes/insureOrderRouter');
var insureProductRouter = require('./routes/insureProductRouter');
var insureSortRouter = require('./routes/insureSortRouter');

var app = express();

//CORS跨域-------------------------------------------------------------------------------------
// CORS：设置允许跨域中间件
var allowCrossDomain = function(req, res, next) {
    // 设置允许跨域访问的 URL(* 表示允许任意 URL 访问)
    res.header("Access-Control-Allow-Origin", "*");
    // 设置允许跨域访问的请求头
    res.header("Access-Control-Allow-Headers", "X-Requested-With,Origin,Content-Type,Accept,Authorization");
    // 设置允许跨域访问的请求类型
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    // 设置允许服务器接收 cookie
    res.header('Access-Control-Allow-Credentials', 'true');
    next();
};
app.use(allowCrossDomain);
//------------------------------------------------------------------------------------



// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

//拦截请求,放在以及路径前面
app.use(jwtAuth);

// app.use('/', indexRouter);
app.use('/admin', adminRouter);
app.use('/client', clientRouter);

app.use('/claimOrder', claimOrderRouter);
app.use('/insureOrder', insureOrderRouter);
app.use('/insureProduct', insureProductRouter);
app.use('/insureSort', insureSortRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
    // set locals, only providing error in development
    res.locals.message = err.message;
    res.locals.error = req.app.get('env') === 'development' ? err : {};

    // render the error page
    res.status(err.status || 500);
    res.render('error');
});

// module.exports = app;

app.listen(3000, () => {
    console.log("begin server");
  })